/**
 * 通用方法封装处理
 * Copyright (c) 2018 reasahi
 */

/** 消息状态码 */
web_status = {
    SUCCESS: 0,
    FAIL: 500
};

/** 弹窗状态码 */
modal_status = {
    SUCCESS: "success",
    FAIL: "error",
    WARNING: "warning"
};

/** 弹出层指定宽度 */
function layer_show(title, url, w, h) {
    if (title == null || title == '') {
        title = false;
    }
    if (url == null || url == '') {
        url = "404.html";
    }
    if (w == null || w == '') {
        //w = 800;
        w = ($(window).width() - 100);
    }
    if (h == null || h == '') {
        h = ($(window).height() - 50);
    }
    layer.open({
        type: 2,
        area: [w + 'px', h + 'px'],
        fix: false,
        //不固定
        maxmin: true,
        shade: 0.4,
        title: title,
        content: url
    });
}

/** 弹出层自动宽高 */
function layer_showAuto(title, url) {
    layer_show(title, url, '', '');
}

/** 关闭弹出框口 */
function layer_close() {
    var index = parent.layer.getFrameIndex(window.name);
    parent.layer.close(index);
}

/** 对ajax的post方法再次封装 */
_ajax_save = function (url, data) {
    var config = {
        url: url,
        type: "post",
        dataType: "json",
        data: data,
        success: function (result) {
            handleSuccess(result);
        }
    };
    $.ajax(config)
};

/** 对ajax的post方法再次封装 */
_ajax_exit = function (url, data,callback) {
    var config = {
        url: url,
        type: "post",
        dataType: "json",
        data: data,
        success: function (result) {
            callback(result);
        }
    };
    $.ajax(config)
};

/** 对ajax的post方法再次封装 */
_ajax_query = function (url, data, callback) {
    var config = {
        url: url,
        type: "post",
        dataType: "json",
        data: data,
        success: function (result) {
            callback(result);
        }
    };
    $.ajax(config)
};

/** 对jquery的ajax方法再次封装 */
_ajax = function (url, data, type) {
    var config = {
        url: url,
        type: type,
        dataType: "json",
        data: data,
        success: function (result) {
            simpleSuccess(result);
        }
    };
    $.ajax(config)
};
//文件上传
_ajax_file = function (url, data) {
    var config = {
        url: url,
        type: "post",
        processData: false,  // 不处理发送的数据
        contentType: false,  // 不设置内容类型
        data: data,
        success: function (result) {
            simpleSuccess(result);
        }
    };
    $.ajax(config)
};

/** 返回结果处理 */
function simpleSuccess(result) {
    if (result.code == web_status.SUCCESS) {
        $.modalMsg(result.msg, modal_status.SUCCESS);
        $.refreshTable();
    } else {
        $.modalAlert(result.msg, modal_status.FAIL);
    }
}

/** 操作结果处理 */
function handleSuccess(result) {
    if (result.code == web_status.SUCCESS) {
        parent.layer.msg("新增成功,正在刷新数据请稍后……", {icon: 1, time: 500, shade: [0.1, '#fff']}, function () {
            $.parentReload();
        });
    } else {
        $.modalAlert(result.msg, modal_status.FAIL);
    }
}

/** 时间格式化 */
function formatDate(_date, _pattern) {
    var date = new Date(_date);
    var newDate = date.format(_pattern);
    return newDate;
}

Date.prototype.format = function (format) {
    var date = {
        "M+": this.getMonth() + 1,
        "d+": this.getDate(),
        "h+": this.getHours(),
        "m+": this.getMinutes(),
        "s+": this.getSeconds(),
        "q+": Math.floor((this.getMonth() + 3) / 3),
        "S+": this.getMilliseconds()
    };
    if (/(y+)/i.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + '')
            .substr(4 - RegExp.$1.length));
    }
    for (var k in date) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k]
                : ("00" + date[k]).substr(("" + date[k]).length));
        }
    }
    return format;
};

/** 创建选项卡 */
function createMenuItem(dataUrl, menuName) {
    dataIndex = Math.floor(Math.random() * 100),
        flag = true;
    if (dataUrl == undefined || $.trim(dataUrl).length == 0) return false;
    var topWindow = $(window.parent.document);
    // 选项卡菜单已存在
    $('.menuTab', topWindow).each(function () {
        if ($(this).data('id') == dataUrl) {
            if (!$(this).hasClass('active')) {
                $(this).addClass('active').siblings('.menuTab').removeClass('active');
                $('.page-tabs-content').animate({marginLeft: ""}, "fast");
                // 显示tab对应的内容区
                $('.mainContent .reasahi_iframe', topWindow).each(function () {
                    if ($(this).data('id') == dataUrl) {
                        $(this).show().siblings('.reasahi_iframe').hide();
                        return false;
                    }
                });
            }
            flag = false;
            return false;
        }
    });
    // 选项卡菜单不存在
    if (flag) {
        var str = '<a href="javascript:;" class="active menuTab" data-id="' + dataUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
        $('.menuTab', topWindow).removeClass('active');

        // 添加选项卡对应的iframe
        var str1 = '<iframe class="reasahi_iframe" name="iframe' + dataIndex + '" width="100%" height="100%" src="' + dataUrl + '" frameborder="0" data-id="' + dataUrl + '" seamless></iframe>';
        $('.mainContent', topWindow).find('iframe.reasahi_iframe').hide().parents('.mainContent').append(str1);

        // 添加选项卡
        $('.menuTabs .page-tabs-content', topWindow).append(str);
    }
    return false;
}

/** 设置全局ajax超时处理 */
$.ajaxSetup({
    complete: function (XMLHttpRequest, textStatus) {
        if (textStatus == "parsererror") {
            $.modalConfirm("登陆超时！请重新登陆！", function () {
                window.location.href = ctx + "login";
            })
        }
    }
});

function changeStatus(id, value, url, content) {
    var data = {"id": id, "idel": value};
    layer.confirm('确定' + content + '？', {
        btn: ['确定', '取消'] //按钮
    }, function () {
        _ajax(url, data, "post");
    }, function () {
        layer.closeAll();
    });
}

function cmResetForm() {
    var form = document.getElementById('searchForm');
    var inputs = form.getElementsByTagName('input');
    // 清除表单元素的值
    for (var i = 0; i < inputs.length; i++) {
        inputs[i].value = inputs[i].defaultValue;
    }
    var selects = document.querySelectorAll('select');
    selects.forEach(function (select) {
        select.selectedIndex = 0;
    });
}

//输入 1234567 输出: 1,234,567
function formatNumber(num) {
    if (num) {
        return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    } else {
        return 0;
    }
}
